#include <stdio.h>
#include <string.h>

// 声明结构体类型
typedef struct Elenemt_data
{
    char name[128]; // 名字
    char sex[64];   // 性别
    int age;        // 年龄
    int id;         // 学号
    int sco;        // 成绩
} Elenemt_data;

typedef struct Sql_list
{
    Elenemt_data data;    // 存储学生数据
    struct Sql_list * next; // 自己嵌套自己的指针
} Sql_list;

Elenemt_data hqyj_24071[50] =
    {
        {.id = 1, .age = 18, .sco = 100, .sex = "男", .name = "唐三"},
        {.id = 2, .age = 18, .sco = 99, .sex = "男", .name = "萧炎"},
        {.id = 3, .age = 18, .sco = 99, .sex = "男", .name = "叶晨"},
        {.id = 4, .age = 18, .sco = 99, .sex = "女", .name = "小舞"},
        {.id = 5, .age = 18, .sco = 99, .sex = "女", .name = "萧熏儿"},
        {.id = 6, .age = 18, .sco = 99, .sex = "女", .name = "柳如烟"},
};

int main(int argc, char const *argv[])
{
    Sql_list L0 = {.data = hqyj_24071[0]};
    Sql_list L1 = {.data = hqyj_24071[1]};
    Sql_list L2 = {.data = hqyj_24071[2]};
    Sql_list L3 = {.data = hqyj_24071[3]};


    Elenemt_data data = {
        .id = 50, strcpy(data.name , "张三") 
    };
    // printf("名字:%s\t|性别:%s\t|学号:%d\t|年龄:%d\t|成绩:%d\n", 
    //         L0.data.name,   L0.data.sex,    L0.data.id,
    //         L0.data.age,    L0.data.sco);
    // printf("名字:%s\t|性别:%s\t|学号:%d\t|年龄:%d\t|成绩:%d\n", 
    //         L1.data.name,   L1.data.sex,    L1.data.id,
    //         L1.data.age,    L1.data.sco);
    // printf("名字:%s\t|性别:%s\t|学号:%d\t|年龄:%d\t|成绩:%d\n", 
    //         L2.data.name,   L2.data.sex,    L2.data.id,
    //         L2.data.age,    L2.data.sco);
    // printf("名字:%s\t|性别:%s\t|学号:%d\t|年龄:%d\t|成绩:%d\n", 
    //         L3.data.name,   L3.data.sex,    L3.data.id,
    //         L3.data.age,    L3.data.sco);
    

    L0.next = &L1;
    L1.next = &L2;
    L2.next = &L3;
    L3.next = NULL;

    Sql_list *L = &L0;

    for (size_t i = 0; i < 4; i++)
    {
        printf("名字:%s\t|性别:%s\t|学号:%d\t|年龄:%d\t|成绩:%d\n", 
            L->data.name,   L->data.sex,    L->data.id,
            L->data.age,    L->data.sco);
        L = L->next;
    }
     // 链表遍历者
    return 0;
}
